package com.exp.bookhouse.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.exp.bookhouse.pojo.MyUser;
import com.exp.bookhouse.pojo.Role;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface UserService {

    //根据id查询用户
    MyUser queryUserById(Long id);

    //微信登录
    MyUser weChatLogin(String encryptedData, String iv, String code) throws Exception;

    //更新用户信息
    int updateUser(MyUser myUser);

    //更新头像
    int updateHeadImage(Long userId, String fullUrl);

    //分页查询用户
    IPage<MyUser> queryUserByPage(Integer page, Integer size);

    //根据用户名查询用户信息
    MyUser queryUserByLoginName(String loginName);

    //根据用户姓名模糊查询用户
    List<MyUser> searchByUserName(String userName);

    //根据用户Id查询角色信息
    List<Role> queryRoles(Long userId);

    //查询用户可以添加的角色
    List<Role> queryOtherRoles(Long userId);

    //添加用户角色
    void saveUserAddRole(Long userId, String[] roleIds);

    //添加用户
    void saveUser(MyUser myUser, MultipartFile file) throws Exception;

    //更新用户
    void updateUser(MyUser myUser, MultipartFile file) throws IOException;

    //根据id删除用户
    void deleteUser(Long id);

    //修改管理员头像
    String changeAvatar(MultipartFile file, Long id) throws Exception;

    //查询用户数量
    int queryCountUser();

    //注册用户
    void register(MyUser myUser);

    //查询所有用户
    List<MyUser> queryAllUser();
}
